//SA config
//$Id: sa_config.h 170 2009-09-12 16:59:28Z Oleg.Bulychov $
#pragma once
#ifndef SA_CONFIG_H
#define SA_CONFIG_H

//__________________________________________________________________________________
//__________________________________________________________________________________
struct SA_Config
{
    double      move_probability_;
    double      initial_temperature_;
    double      cooling_rate_;
    double      heating_rate_;
    int         isotherm_moves_;

    bool        async_mode_;
    int         cooperation_rate_;

    template<class V>
    void accept(V& v)
    {
        v(VAR_(move_probability),           0.02);
        v(VAR_(initial_temperature),        1.);
        v(VAR_(cooling_rate),               0.994);
        v(VAR_(heating_rate),               1.5);
        v(VAR_(isotherm_moves),             20);

        v(VAR_(async_mode),                 true);
        v(VAR_(cooperation_rate),           25);
    }
};
//__________________________________________________________________________________
//__________________________________________________________________________________

#endif
//EOF!
